package com.developpez.rpouiller.testsjunit4.java4;

import org.junit.Assert;
import org.junit.Test;

/**
 * 
 * Cette classe sert à réaliser des tests simples sur les méthodes de la classe Opération
 *
 */
public class TestSimple {

    /** 
     * test d'addition de 2 nombres 
     */
    @Test
    public void additionAvecDeuxNombres() {
        final long lAddition = Operations.additionner(new long[]{10, 20});
        Assert.assertEquals(30, lAddition);
    }

    /** 
     * test d'addition de 5 nombres 
     */
    @Test
    public void additionAvecCinqNombres() {
        final long lAddition = Operations.additionner(new long[]{256, 512, 1024, 2048, 4096});
        Assert.assertEquals(7936, lAddition);
    }

    /** 
     * test de multiplication de 2 nombres 
     */
    @Test
    public void mutiplicationAvecDeuxNombres() {
        final long lMultiplication = Operations.multiplier(new long[]{10, 20});
        Assert.assertEquals(200, lMultiplication);
    }
 
    /** 
     * test de multiplication de 5 nombres 
     */
    @Test
    public void testMutiplicationAvecCinqNombres() {
        final long lMultiplication = Operations.multiplier(new long[]{256, 512, 1024, 2048, 4096});
        Assert.assertEquals(1125899906842624L, lMultiplication);
    }
    
    
    /**
     * test de divison avec deux nombres
     */
    @Test
    public void testDivisionAvecDeuxNombres() {
    	final long lDivision = Operations.diviser(new long[]{20, 5});
    	Assert.assertEquals(4, lDivision);
    }
    
    
   /**
    * test de pythagore
    */
    @Test
    public void testPythagoreRenvoieVrai() {
    	final Boolean[] lPythagore = Operations.pythagore(new long[][]{new long[]{30, 40, 50}});
    	Assert.assertEquals(true, lPythagore[0]);
    }
    
    
    /**
     * test de pythagore
     */
     @Test
     public void testPythagoreRenvoieFaux() {
     	final Boolean[] lPythagore = Operations.pythagore(new long[][]{new long[]{30, 60, 100}});
     	Assert.assertEquals(false, lPythagore[0]);
     }
}
